home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_200 / 271_02 / textcomp.c < prev    next >
Text File  |  1987-08-10  |  2KB  |  74 lines

  1. /*
  2. **                TEXT COMPARE UTILITY
  3. **
  4. **   Copyright 1987, S.E. Margison
  5. **
  6. **   This short utility compares two text files and shows
  7. **   any line differences.
  8. **
  9. **   As distributed, this program requires (for compilation):
  10. **     "Steve's Turbo-C Library" version 1.30 or later
  11. **   which may be obtained without registration from many Bulletin
  12. **   Board Systems including:
  13. **      Compuserve IBMSW
  14. **      Cul-De-Sac (Holliston, MA.)
  15. **      GEnie
  16. **   and software library houses including:
  17. **      Public (Software) Library (Houston, TX.)
  18. **
  19. **   or by registration:
  20. **      $10 for Docs, Small Model Library
  21. **      $25 for Docs, C, S, M, L, H libraries, and complete library source
  22. **              in C and Assembler
  23. **     Steven E. Margison
  24. **     124 Sixth Street
  25. **     Downers Grove, IL, 60515
  26. **
  27. **
  28. */
  29.  
  30. #include <stdio.h>
  31. #include <smdefs.h>
  32.  
  33. FILE *fp1, *fp2;
  34. char buf1[MAXLINE], buf2[MAXLINE];
  35.  
  36. main(argc, argv)
  37. int argc;
  38. char *argv[];
  39. {
  40.    int lc, end1, end2;
  41.    lc = 0;
  42.    end1 = end2 = NO;
  43.  
  44.    if(argc isnot 3) error("usage: TC file1 file2");
  45.  
  46.    if((fp1 = fopen(argv[1], "r")) is NULL) cant(argv[1]);
  47.  
  48.    if((fp2 = fopen(argv[2], "r")) is NULL) {
  49.       fclose(fp1);
  50.       cant(argv[2]);
  51.       }
  52.  
  53.    for ever {
  54.       ++lc;
  55.       if(fgets(buf1, MAXLINE, fp1) is NULL) end1 = YES;
  56.       if(fgets(buf2, MAXLINE, fp2) is NULL) end2 = YES;
  57.       if(end1 or end2) break;
  58.  
  59.       if(strcmp(buf1, buf2)) {
  60.          printf("Line %d in %s\n", lc, argv[1]);
  61.          printf("%s", buf1);
  62.          printf("Line %d in %s\n", lc, argv[2]);
  63.          printf("%s", buf2);
  64.          }
  65.       }
  66.    if(end1 and !end2)
  67.       printf("EOF on %s occured first\n", argv[1]);
  68.    if(end2 and !end1)
  69.       printf("EOF on %s occured first\n", argv[2]);
  70.    fclose(fp1);
  71.    fclose(fp2);
  72.    }
  73.  
  74.